package com.aiinterview.subjectservice.service;


import com.aiinterview.common.entity.PageResult;
import com.aiinterview.model.subject.dto.SubjetQueryDto;
import com.aiinterview.model.subject.entity.SubjectInfo;
import com.aiinterview.model.subject.vo.SubjectInfoVo;

/**
 * 题目信息表(SubjectInfo)表服务接口
 *
 * @author makejava
 * @since 2025-01-06 14:13:23
 */
public interface SubjectInfoService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    SubjectInfo queryById(Long id);



    /**
     * 新增数据
     *
     * @param subjectInfo 实例对象
     * @return 实例对象
     */
    SubjectInfo insert(SubjectInfo subjectInfo);

    /**
     * 修改数据
     *
     * @param subjectInfo 实例对象
     * @return 实例对象
     */
    SubjectInfo update(SubjectInfo subjectInfo);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Long id);

    /**
     * 根据题目条件分页查询题目
     * @param subjetQueryDto
     * @return
     */
    PageResult pageQuery(SubjetQueryDto subjetQueryDto);

    /**
     * 根据id查询题目信息
     * @param id
     * @return
     */
    SubjectInfoVo getInfoById(long id);

    /**
     * 根据题目id点赞
     * @param subjectId
     */
    String like(long subjectId);

    /**
     * 根据题目id收藏
     * @param subjectId
     */
    String favorite(long subjectId);
}
